package org.soderiakelvy.controller.producto;

import java.util.Map;


import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import org.soderiakelvy.controller.util.Constante;
import org.soderiakelvy.model.domain.TipoProductoVO;
import org.soderiakelvy.model.service.ProductoServicio;
import org.soderiakelvy.model.service.imp.ProductoServicioImp;
import org.soderiakelvy.model.util.ConstantModel;

@ManagedBean
public class TipoProductoEdit {
	
	private TipoProductoVO tipoProducto;
	private ProductoServicio service;
	 
	public TipoProductoEdit(){
		service = new ProductoServicioImp();	
		FacesContext fc = FacesContext.getCurrentInstance();
		Map<String,Object> sessionParams = fc.getExternalContext().getSessionMap();
		tipoProducto = (TipoProductoVO) sessionParams.get("tipoProducto");
	}
	
	public String tipoProductoUpdate(TipoProductoVO tp){
		System.out.println("ID: "+tp.getTipoProductoId());
		System.out.println("NOMBRE: "+tp.getNombre());
		System.out.println("DESCRIPCION: "+tp.getDescripcion());
		
		String result=service.updateTipoProductoVO(tp);
		if(result.equals(ConstantModel.SUCCESS)){
			return Constante.URL_TIPO_PRODUCTO_LIST;
		}else {
			if(result.equals(ConstantModel.NOMBRE_DUPLICADO)){
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,"Nombre Duplicado", "El nombre ingresado ya se encuentra en la Base de Datos"));
			}else {
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL,"Error al Insertar un registro", "Surgio un error al ingresar un registro. Comuicarse con el responsable del Sistema"));
			}
			return null;
		}
	}
	
	public String cancelarUpdate(){
		return Constante.URL_TIPO_PRODUCTO_LIST;
	}

	//TODO Get and Set
	public TipoProductoVO getTipoProducto() {
		return tipoProducto;
	}

	public void setTipoProducto(TipoProductoVO tipoProducto) {
		this.tipoProducto = tipoProducto;
	}
}
